/*
    试题名称：小杨的 H 字矩阵
    时间限制：1.0 s
    内存限制：128.0 MB
  1.1 问题描述
    小杨想要构造一个 N*N 的 H 字矩阵（N为奇数），具体来说，这个矩阵共有N行，每行N个字符，
    其中最左列、最右列都是 | ，而中间一行（即第 (N+1)/2 行）的第 2 ~ N-1 个字符都是 - ，
    其余所有字符都是半角小写字母a。例如，一个 的 H 字矩阵如下：
      |aaa|
      |aaa|
      |---|
      |aaa|
      |aaa|
    请你帮小杨根据给定的 打印出对应的“H 字矩阵”。
  1.2 输入描述
    一行一个整数 N（5 <= N <= 49，保证 为奇数）。
  1.3 输出描述
    输出对应的“H 字矩阵”。
    请严格按格式要求输出，不要擅自添加任何空格、标点、空行等任何符号。
    你应该恰好输出 N 行，每行除了换行符外恰好包含 N 个字符，这些字符要么是 - ，要么是 | ，要么是 a 。
    你的输出必须和标准答案完全一致才能得分，请在提交前仔细检查。
  1.4 特别提醒
    在常规程序中，输入、输出时提供提示是好习惯。但在本场考试中，由于系统限定，
    请不要在输入、输出中附带任何提示信息。
  1.5 样例输入 1
    5
  1.6 样例输出 1
    |aaa|
    |aaa|
    |---|
    |aaa|
    |aaa|
  1.7 样例输入 2
    7
  1.8 样例输出 2
    |aaaaa|
    |aaaaa|
    |aaaaa|
    |-----|
    |aaaaa|
    |aaaaa|
    |aaaaa|
 */
#include <iostream>

using namespace std;

int main() {
  int n;

  cin >> n;
  for (int i = 1; i <= n; i++) {
    if (i * 2 == n + 1) {
      for (int j = 1; j <= n; j++) {
        if (j == 1) {
          cout << "|";
        } else if (j == n) {
          cout << "|" << endl;
        } else {
          cout << "-";
        }
      }
    } else {
      for (int j = 1; j <= n; j++) {
        if (j == 1) {
          cout << "|";
        } else if (j == n) {
          cout << "|" << endl;
        } else {
          cout << "a";
        }
      }
    }
  }

  return 0;
}